package org.fast.develop.logicflow.management.service;

import org.fast.develop.logicflow.management.bo.LogicModelDetailBo;
import org.fast.develop.logicflow.management.builder.CreateDeploymentBuilder;
import org.fast.develop.logicflow.management.builder.CreateModelBuilder;
import org.fast.develop.logicflow.management.builder.UpdateModelBuilder;
import org.fast.develop.logicflow.repository.domain.deployment.LogicDeployment;
import org.fast.develop.logicflow.repository.domain.model.LogicModel;

import java.util.List;

/**
 * @author 莫寅
 * @createTime 2022-12-20 00:42
 * @desc：
 */
public interface LogicModelService {


    public LogicModelDetailBo get(String modelId);

    public String getSchema(String modelId);

    public void saveSchema(String modelId, String schema);


    public List<? extends LogicModel> getList(LogicModel logicModel);

    /**
     * 创建模型
     * @return
     */
    public CreateModelBuilder createModel();

    /**
     * 创建
     * @param createModelBuilder
     * @return
     */
    public LogicModel create(CreateModelBuilder createModelBuilder);

    /**
     * 创建模型
     * @return
     */
    public UpdateModelBuilder updateModel();

    /**
     * 创建
     * @param updateModelBuilder
     * @return
     */
    public LogicModel update(UpdateModelBuilder updateModelBuilder);


    /**
     * 部署
     * @param modelId
     * @return
     */
    public LogicDeployment deploy(String modelId);


    public void delete(String modelId);


}
